#include<iostream>



//仿函数:让类的 对象 像函数一样 可以被调用


class Func
{
public:

    Func(int c):c(c)
    {
        
    }
   
    int operator()(int a,int b)
    {
        return a+b;
    }
private:
    int c;
};




int add(int a, int b)
{

    return a + b;
}

int minus(int a, int b)
{
    return a -b;
}

void func(Func &f,int a, int b)
{
    std::cout<<f(a,b)<<std::endl;
}


int main()
{

    // //回调的作用:拓展函数的功能
    // func(add,1,2);
    
    // func(minus,1,2);

    Func f(10);
    
    std::cout<< f(1,2) <<std::endl;

    func(f,1,2);
    return 0;
}